<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Javascript 可迭代对象</title>
</head>
<body>
<!--
    自制的可迭代对象存在问题，它不支持 JavaScript 中的 for..of 语句。
    JavaScript 中的可迭代对象是具有 Symbol.iterator 属性的对象。
    Symbol.iterator 是一个返回 next() 函数的函数。
    可以使用以下代码迭代可迭代对象：for (const x of iterable) { }
-->
<p id="demo"></p>
<script>
  const myNumbers = {};
  //使其可迭代
  myNumbers[Symbol.iterator] = function (){
    let n = 0;
    done = false;
    return {
      next(){
        n += 10;
        if(n == 100){done = true}
        return {value:n,done:done};
      }
    };
  }

  let text = ""
  for(const num of myNumbers){
    text += num + "<br/>"
  }

  document.getElementById("demo").innerHTML = text;
</script>
</body>
</html>